//List Reverse(List L)
//{
//    Position Old_head, New_head, Temp;
//    New_head = NULL;
//    Old_head = L->Next;
//    while (Old_head) {
//        Temp = Old_head->Next;
//
//        Old_head->Next = New_head; 
//
//        New_head = Old_head;
//        Old_head = Temp;
//    }
//    L->Next = New_head;
//    return L;
//}

//#include <stdio.h>
//#include <stdlib.h>
//typedef int ElementType;
//typedef struct LNode* PtrToLNode;
//struct LNode {
//	ElementType Data;
//	PtrToLNode Next;
//};
//typedef PtrToLNode List;
//List Read(); 
//int Length(List L);
//int main()
//{
//	List L = Read();
//	printf("%d\n", Length(L));
//	return 0;
//}
//int Length(List L)
//{
//	int len = 1;
//	if (L == NULL)
//		return 0;
//	while (L->Next != NULL)
//	{
//		len++;
//		L = L->Next;
//	}
//	return len;
//}

//int Sort(int m[], int l)
//{
//    int i, k;
//    for (i = l - 1; i >= 0; i--)
//    {
//        if (m[i] <= m[0])
//        {
//            break;
//        }
//    }
//    for (k = l; k > i + 1; k--)
//    {
//        m[k] = m[k - 1];
//    }
//    m[i + 1] = m[0];
//}
//void  InsertSort(SqList L)
//{
//    int m = L.Length;
//    for (int i = 1; i <= m; i++)
//    {
//        *(L.elem) = *(L.elem + i);
//        Sort(L.elem, i);
//    }
//}